package com.wy.w_ui.banner.core;

import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.ViewPager;

import com.wy.w_ui.banner.adapter.IWBindAdapter;
import com.wy.w_ui.banner.adapter.WBannerAdapter;
import com.wy.w_ui.banner.indicator.IWIndicator;

import java.util.List;


/**
 * 定义 banner 对外暴露的方法
 */
public interface IWBanner {

    void setBannerData(@LayoutRes int layoutResId, @NonNull List<? extends WBannerBean> models);

    void setBannerData(@NonNull List<? extends WBannerBean> models);

    /**
     * 设置指示器
     * @param indicator 指示器接口对象
     */
    void setIndicator(IWIndicator indicator);

    /**
     * 设置自动滚动
     * @param autoPlay 自动滚动
     */
    void setAutoPlay(boolean autoPlay);

    void setLoop(boolean loop);

    /**
     * 设置间隔时间
     * @param intervalTime 间隔时间
     */
    void setIntervalTime(int intervalTime);

    /**
     * 绑定适配器
     * @param bindAdapter 适配器
     */
    void setBindAdapter(IWBindAdapter bindAdapter);

    /**
     * 设置 banner 切换监听
     * @param onPageChangeListener Listener
     */
    void setOnPageChangeListener(ViewPager.OnPageChangeListener onPageChangeListener);

    /**
     * 设置滑动速度
     * @param duration duration
     */
    void setScroller(int duration);

    /**
     * 设置 banner 点击监听
     * @param onBannerClickListener Listener
     */
    void setOnBannerClickLister(OnBannerClickListener onBannerClickListener);

    /**
     * banner 点击接口
     */
    interface OnBannerClickListener{
        void onBannerClick(@NonNull WBannerAdapter.WBannerViewHolder viewHolder, @NonNull WBannerBean bannerMo,@NonNull int position);
    }


}
